package services

import (
	"errors"
	"tapi-go/global"
	"tapi-go/models"
	"tapi-go/models/reqt"
)

// @title    GetInfoList
// @description   get user list by pagination, 分页获取数据
// @auth                      （2020/04/05  20:22）
// @param     info             request.PageInfo
// @return    err              error
// @return    list             interface{}
// @return    total            int

func GetUserInfoList(info reqt.PageInfo) (err error, list interface{}, total int64) {
	limit := info.PageSize
	offset := info.PageSize * (info.Page - 1)
	db := global.YY_DB.Model(&models.SysUser{})
	var userList []models.SysUser
	err = db.Count(&total).Error
	err = db.Limit(limit).Offset(offset).Find(&userList).Error
	return err, userList, total
}

// @title    FindUserById
// @description   Get user information by id, 通过id获取用户信息
// @auth                     （2020/04/05  20:22）
// @param     id              int
// @return    err             error
// @return    user            *model.SysUser

func FindUserById(id int) (err error, user *models.SysUser) {
	var u models.SysUser
	err = global.YY_DB.Where("`id` = ?", id).First(&u).Error
	return err, &u
}

// @title    FindUserByUuid
// @description   Get user information by uuid, 通过uuid获取用户信息
// @auth                     （2020/04/05  20:22）
// @param     uuid            string
// @return    err             error
// @return    user            *model.SysUser

func FindUserByUuid(uuid string) (err error, user *models.SysUser) {
	var u models.SysUser
	if err = global.YY_DB.Where("`uuid` = ?", uuid).First(&u).Error; err != nil {
		return errors.New("用户不存在"), &u
	}
	return nil, &u
}
